<?php
/**
 * Copyright 2013 Marek Kaszewski
 *
 * This file is part of the JHUB1 Online Community Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

namespace Jhub1_Common\Model\Endpoint;

use Jhub1_Common\Model\Endpoint\Prototype\Integer;
use Jhub1_Common\Model\Endpoint\Prototype\Boolean;
use Jhub1_Common\Model\Endpoint\Prototype\OptionsList;
use Jhub1_Common\Model\Endpoint\Prototype\Real;
use Jhub1_Common\Model\Endpoint\Prototype\RGBColour;
use Jhub1_Common\Model\Endpoint\Prototype\Text;

class PrototypeFactory
{
    private function __construct()
    {
    }

    public static function getInstance($clazz)
    {
        if(strtolower($clazz) == 'integer')
        {
            return new Integer();
        }
        else if(strtolower($clazz) == 'boolean')
        {
            return new Boolean();
        }
        else if(strtolower($clazz) == 'optionslist')
        {
            return new OptionsList();
        }
        else if(strtolower($clazz) == 'real')
        {
            return new Real();
        }
        else if(strtolower($clazz) == 'rgbcolor')
        {
            return new RGBColour();
        }
        else if(strtolower($clazz) == 'text')
        {
            return new Text();
        }
        else
        {
            return null;
        }
    }

    public static function getValidClasses()
    {
        return 'integer, boolean, optionslist, real, rgbcolour or text';
    }
}